package asteroids.model.expressions;

import java.util.HashMap;

import asteroids.model.*;

/**
 * A subclass of expression (E) that represents all the expressions that have an executer
 * 
 * @version 1.0
 * 
 * @author	Thijs Peirelinck & Wouter Parys
 *
 */
public abstract class ExecuterExpression extends BasicExpression {

	private Ship executer;
	
	@Override
	public abstract Object getValue();
	
	@Override
	public abstract String getReturnType();
	
	@Override
	public abstract String toString();
	
	@Override
	public abstract boolean isValidExpression();
	
	public void setExecuter(Ship executer) {
		this.executer = executer;
	}
	
	public Ship getExecuter() {
		return executer;
	}
	
	public abstract void validate(HashMap<String, E> variables);
	
}
